Remove Metadata Importing Requirements for External References and Signatures - #655
Merged
Conversation
Washi1337
force-pushed
the
feature/auto-import
branch
from
September 6, 2025 18:43
989de1a to
d3d1c57
Compare
Washi1337
marked this pull request as ready for review
September 6, 2025 21:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a breaking change that aims to make generating CIL code and .NET metadata easier.
Features:
TypeReferences andMemberReferences.IModuleProvider::ModuleintoContextModuleandDeclaringModule.IResolutionScope::CreateTypeReferenceautomatically sets the context module for more predictable type resolution.IMemberDefinition::Resolve(ModuleDefinition)overloads taking a module definition as overriding resolution context.This should avoid the very common problem that people run into when forgetting to import a reference and not knowing which reference was not imported exactly. It should also remove any confusion of the meaning of the
Moduleproperty in metadata members that represent external references (i.e., isModulethe module that owns the reference or the module the definition behind the reference is defined in?). Note that definitions (e.g.,TypeDefinition) still need to be imported explicitly, to convert them to the appropriate references (i.e.,TypeReference).